package com.tencent.wxcloudrun.vo.response.wx;

import java.util.List;

import com.fasterxml.jackson.annotation.JsonProperty;

import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @author Ryan Zhao
 *         <p>
 *         Copyright: Copyright (c) 2023
 *         </p>
 * @version 1.0
 * @date 2023-08-29 14:55
 * @description: 微信查询订单请求出参
 */
@NoArgsConstructor
@Data
@ApiModel(value = "WxQryOrderResponse", description = "微信查询订单请求出参")
public class WxQryOrderResponse {

    @JsonProperty("errcode")
    private Integer errcode;

    @JsonProperty("errmsg")
    private String errmsg;

    @JsonProperty("respdata")
    private RespdataDTO respdata;

    @NoArgsConstructor
    @Data
    public static class RespdataDTO {

        @JsonProperty("return_code")
        private String returnCode;

        @JsonProperty("return_msg")
        private String returnMsg;

        @JsonProperty("appid")
        private String appid;

        @JsonProperty("mch_id")
        private String mchId;

        @JsonProperty("sub_appid")
        private String subAppid;

        @JsonProperty("sub_mch_id")
        private String subMchId;

        @JsonProperty("nonce_str")
        private String nonceStr;

        @JsonProperty("sign")
        private String sign;

        @JsonProperty("result_code")
        private String resultCode;

        @JsonProperty("openid")
        private String openid;

        @JsonProperty("is_subscribe")
        private String isSubscribe;

        @JsonProperty("sub_openid")
        private String subOpenid;

        @JsonProperty("trade_type")
        private String tradeType;

        @JsonProperty("trade_state")
        private String tradeState;

        @JsonProperty("bank_type")
        private String bankType;

        @JsonProperty("total_fee")
        private Integer totalFee;

        @JsonProperty("fee_type")
        private String feeType;

        @JsonProperty("cash_fee")
        private Integer cashFee;

        @JsonProperty("cash_fee_type")
        private String cashFeeType;

        @JsonProperty("coupon_id_list")
        private List<?> couponIdList;

        @JsonProperty("coupon_type_list")
        private List<?> couponTypeList;

        @JsonProperty("coupon_fee_list")
        private List<?> couponFeeList;

        @JsonProperty("transaction_id")
        private String transactionId;

        @JsonProperty("out_trade_no")
        private String outTradeNo;

        @JsonProperty("attach")
        private String attach;

        @JsonProperty("time_end")
        private String timeEnd;

        @JsonProperty("trade_state_desc")
        private String tradeStateDesc;
    }
}
